Integração no seu SDK
Aqui você aprenderá como adicionar o SDK Group Link ao seu SDK e iniciá-lo a partir do seu SDK.
Passo 1 - Build settings
No target do framework do seu SDK, confirme se os seguintes build settings estão corretos:
| Nome amigável (Xcode) | Setting | Valor |
|---|---|---|
| Build Libraries for Distribution | BUILD_LIBRARY_FOR_DISTRIBUTION | YES |
| Skip Install | SKIP_INSTALL | NO |
Se o seu SDK já é distribuído como XCFramework, os dois settings já estarão corretos.
Onde e como alterar: projeto do seu SDK → TARGET do framework → Build Settings → filtros All + Combined → busque o setting → se necessário, altere o valor para todas as configurações (Debug e Release).
Nota: A busca aceita tanto o nome amigável (ex.:
Build Libraries for Distribution) quanto o nome técnico (ex.:BUILD_LIBRARY_FOR_DISTRIBUTION). Por padrão, a lista mostra os nomes amigáveis; para ver os técnicos: Editor → Show Setting Names.
Build Libraries for Distribution em Yes
Skip Install em No
Se o valor vier de outro lugar, altere-o lá, senão ele sobrescreve o que foi feito no Xcode. Para descobrir de onde vem: Build Settings → visão Levels, que mostra em qual coluna (target, projeto, .xcconfig) o valor está definido.
Build Settings na visão Levels
Passo 1a - Configuração alternativa via .xcconfig
.xcconfig do target do framework:
BUILD_LIBRARY_FOR_DISTRIBUTION=YES
SKIP_INSTALL=NO
Passo 1b - Configuração alternativa via XcodeGen
XcodeGen (project.yml):
targets:
SeuSDK:
type: framework
settings:
base:
BUILD_LIBRARY_FOR_DISTRIBUTION: YES
SKIP_INSTALL: NO
Passo 1c - Configuração alternativa via Tuist
Tuist (Project.swift):
.target(
name: "SeuSDK",
destinations: .iOS,
product: .framework,
bundleId: "…",
sources: ["Sources/**"],
settings: .settings(base: [
"BUILD_LIBRARY_FOR_DISTRIBUTION": "YES",
"SKIP_INSTALL": "NO"
])
)
Passo 1d - Configuração alternativa via linha de comando (script de build)
Script de build (xcodebuild archive):
xcodebuild archive \
-project <SEU_SDK>.xcodeproj \
-scheme SeuSDK \
-configuration Release \
-destination "generic/platform=iOS" \
-archivePath build/ios.xcarchive \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
SKIP_INSTALL=NO
Passo 2 - Adicionar o pacote do SDK Group Link
Adicionando um novo pacote ao seu projeto
- No Xcode, localize o painel à esquerda e clique no seu
PROJECT. - No topo da janela aberta, clique na aba
Package Dependencies. - A lista de pacotes utilizados no projeto será exibida.
- Clique no botão
+localizado na parte inferior esquerda dessa lista para adicionar um novo pacote.
Adicionando um novo pacote ao projeto
Buscando o pacote pela URL do GitHub
- No campo de busca, no canto superior direito da janela, cole a URL do repositório:
https://github.com/Group-Link-One/iOSGrouplinkStatic
- Em alguns instantes, o resultado
iosgrouplinkstaticaparecerá na lista. - Clique no
iosgrouplinkstaticpara selecioná-lo. - Verifique se a
Dependency Ruleestá configurada paraUp to Next Major Versione deixe a versão preenchida pelo Xcode. - Clique em
Add Packagepara adicionar oiosgrouplinkstaticao projeto.
⚠️ Atenção: Certifique-se de que a
Dependency Ruleesteja configurada corretamente. NaDependency Rule, não utilize as opçõesUp to Next Minor Version,Branch,Exact Version,Range of VersionsouCommit. A configuração correta éUp to Next Major Version. Essa configuração garante que você sempre utilizará uma versão compatível do SDK publicada pela Group Link One.
Buscando o pacote iOSGrouplinkStatic pela URL do GitHub
Escolhendo os produtos do pacote
O Xcode irá resolver o pacote e abrir a janela Choose Package Products for iOSGrouplinkStatic.
- Verifique se o pacote
GroupLinkStaticestá na lista. - Na coluna
Add to Target, confirme que ele está associado ao target do framework do seu SDK. - Clique em
Add Packagepara confirmar a adição do pacote.
Escolhendo os produtos do pacote iOSGrouplinkStatic
Verificando a instalação
Após a conclusão, você retornará à aba Package Dependencies. Lá, confirme que está tudo correto:
- A lista deve exibir agora o pacote
GroupLinkStaticPackage. - O pacote
GroupLinkStaticPackageaparece com:- Location:
https://github.com/Group-Link-One/iOSGrouplinkStatic - Dependency Rule:
Up to Next Major Version - Value:
<VERSÃO_ATUAL_DO_PACOTE>
- Location:
Verificando a instalação do pacote GroupLinkStaticPackage
Conferindo a adição do pacote ao Link Binary With Libraries
Confira se o pacote GroupLinkStatic foi adicionado corretamente:
GroupLinkStatic no TARGET do framework → General → Frameworks and Libraries
GroupLinkStatic no TARGET do framework → Build Phases → Link Binary With Libraries
[OPCIONAL] - Caso o build falhe com No such module 'GroupLinkStatic'
Esse erro ocorre quando o pacote GroupLinkStatic não foi adicionado corretamente ao Link Binary With Libraries.
É necessário verificar se a fase Link Binary With Libraries existe no Build Phases do seu framework.
Se a fase não existir:
- Acesse o TARGET do framework → Build Phases → + → New Link Binary With Libraries Phase.
Nova fase do Link Binary With Libraries
- Clique no + na nova fase do Link Binary With Libraries.
Clicando no + na nova fase do Link Binary With Libraries
- Adicione o
GroupLinkStaticà nova fase do Link Binary With Libraries.
Adicionando GroupLinkStatic à nova fase do Link Binary With Libraries
Se a fase existir:
- Acesse o TARGET do framework → Build Phases → Link Binary With Libraries.
- Verifique se
GroupLinkStaticestá listado.
GroupLinkStatic listado em Link Binary With Libraries
Se o erro persistir, remova o pacote e adicione novamente conforme os passos acima.
- PROJECT → Package Dependencies → selecione
GroupLinkStaticPackage→ − → Remove. - Adicione o pacote de novo (passo acima), escolhendo o TARGET do framework do seu SDK em
Add to Target.
Passo 3 - Iniciar o SDK Group Link no seu SDK
Coloque o start do SDK Group Link no init do seu SDK:
import Foundation
internal import GroupLinkStatic // Import interno do SDK Group Link
@objc public final class SeuSDKManager: NSObject {
@MainActor
@objc public static func start() {
// ... inicialização atual do seu SDK ...
if #available(iOS 15.0, *) {
// Start do SDK Group Link
GroupLinkSDK.start(appLabel: "<GROUPLINK_APP_LABEL>")
// Chamada das permissões necessárias
GroupLinkSDK.startBluetooth()
GroupLinkSDK.startLocation()
// Configuração do remote ID (pode ser chamado a qualquer momento após o start do SDK Group Link)
GroupLinkSDK.setRemoteId("<REMOTE_ID>")
}
}
}
⚠️ Atenção: O
internal importdeve ser usado em todo arquivo que importar o SDK Group Link. Não useimportcomum, nem@_implementationOnly.